Information systems such as computer systems are being spread broadly. In general, those information processing systems process information by using high-performance LSI such as CPU (Central Processing Unit). Recently, the performance of LSI other than CPU has been making a tremendous progress.
For example, reconfigurable devices such as FPGA (Field Programmable Gate Array) and CPLD (Complex Programmable Logic Device) can reconfigure logic circuits designed by users on the actual cites, so that those devices have drawn attentions because it is possible with those devices to reduce the development cost and to shorten the development time compared to those of ASIC that is a device of specific usage specification.
Due to the development of the high-performance reconfigurable device, the configuration information that can be loaded into the device tends to increase gradually. In the meantime, for example, extremely long time is required for loading vast amount of configuration information in a test and the like of the reconfigurable device, so that it takes more time in the test process than in main processing that is creation of a logic circuit.
In order to overcome this issue, some researches for compressing configuration information and decompressing (expanding) the information more efficiently have been presented.
For example, a compression method called LZ depicted in Non-Patent Document 1 is shown in FIG. 16. FIG. 16 is an illustration which schematically shows an example of a compression method under a research regarding compression of configuration information. In FIG. 16, a comparator/output device 502 searches whether or not a character string corresponding to an input character string 501a is contained in a referred character string dictionary 500. In a case where the input character string 501a is contained in the character string dictionary 500, the comparator/output device 502 outputs flag information indicating that the character string is contained, the start position of that character string in the character string dictionary 500, and the length of that character string.
In the meantime, in a case where the input character string 501a is not contained in the character string dictionary 500, the comparator/output device 502 outputs flag information indicating that the character string is not contained, and the uncontained input character string 501a itself. Thereafter, the oldest character string is erased from the character string dictionary 500, and the input character string 501a is newly added to the character string dictionary 500.
In the case of FIG. 16, a character string “BC” out of the input character string 501a is contained in the character string dictionary 500. Thus, as an output character string 503a, the comparator/output device 502 outputs flag information “Yes” indicating that the character string is contained, the start position “2” of the corresponding character string in the character string dictionary 500, and the length “2 (bytes)”.
In the meantime, a next character string “R” out of the input character string 501a is not contained in the character string dictionary 500. Therefore, as the output character string 503a, the comparator/output device 502 outputs flag information “No” indicating that the character string is not contained, and the uncontained character string “R” itself. As a result, it is possible to compress the output character string 503a with respect to the input character string 501a (see Non-Patent Document 1).
Further, a compression method called X-Match is depicted in another document. FIG. 17 is an illustration which schematically shows the compression method of this research. In FIG. 17, a comparator/output device 602 searches whether or not a character string corresponding to an input character string 601a is contained in a referred character string group dictionary 600. In a case where the input character string 601a is contained in the character string group dictionary 600, the comparator/output device 602 outputs flag information indicating that the character string is contained, the position of the referred character string within the character string group dictionary 600, the position of the matching character in that character string, and the unmatched character string itself.
In the meantime, in a case where the input character string 601a is not contained in the character string group dictionary 600, the comparator/output device 602 outputs flag information indicating that the character string is not contained, and the uncontained input character string 601a itself. Thereafter, the oldest character string is erased from the character string group dictionary 600, and the input character string 601a is newly added to the character string group dictionary 600.
In the case of FIG. 17, a character string “B*R*JF (* is uncontained character string)” out of the input character string 601 is partially contained in “BQRTJF” of a referred character string 3 within the character string group dictionary 600. Thus, as an output character string 603a, the comparator/output device 602 outputs flag information “Yes” indicating that the character string is contained, the start position “3” of the referred character string, a bit string “101011” of the character positions indicating matching or unmatching state of that character string, and uncontained character strings “S” and “E”. As a result, it becomes possible to compress the output character string 603a with respect to the input character string 601a (see Non-Patent Document 2).
Further, a compression method called FPC is depicted in another document. FIG. 18 is a schematic illustration of the compression method of this research. In FIG. 18, a comparator/output device 702 searches which of referred compression rules 700 a character string corresponding to an input character string 701a conforms to. In this case, all the input character strings are generated to conform to one of the compression rules without exceptions. Thus, as an output character string 703a, the comparator/output device 702 outputs the number of conformed compression rule, and a character string required for decompression (restoration).
In the case of FIG. 18, higher-order 16 bits “0123” and lower-order 16 bits “0123” of the input character string 701a match with each other. Thus, this conforms to a compression rule under the number “101” out of the compression rules 700, which is a rule indicating that the higher-order and lower-order 16 bits are the same. Therefore, as a character string 703a, the comparator/output device 702 outputs the conformed compression rule number “101”, and the lower-order 16-bit character string “0123” required for decompression. As a result, it becomes possible to compress the output character string 703a with respect to the input character string 701a (see Non-Patent Document 3).
Other than the researches described above, there are also various kinds of researches proposed regarding compression processing of information (Patent Documents 1 to 3). For example, “Data Compression Device and Method” according to Patent Document 1 provides a compression/expansion system for increasing the capacity of digital storage devices such as magnetic disk storage devices and magnetic tape storage devices. In this document, depicted are a compression unit and an expansion unit mounted into a single integrated circuit that is a part of a data storage system or a data transmission system controlled by a microprocessor. For example, the compression unit performs compression processing on uncompressed data received from a host and transmits it to a device under a control of a controller MPU (microprocessor).
In the meantime, the expansion unit performs expansion processing on the compressed data received from the device and transmits it to the host under a control of the controller MPU. In this case, the history of data that are compression-processed and expansion-processed previously is stored in a RAM, and the history is utilized when matching data is received.
Further, in “Silicon Storage Medium Control Method and Silicon Storage Medium” according to
Patent Document 2, the silicon recording medium includes a controller and at least a single memory. The controller is structured to include a microprocessor, a data compressor, a data restorer, and also a conversion table buffer as well as an address mapping module.
Further, in “Program Code Compression Method Making It Possible to Perform High-Speed Prototyping of Code Compression Technique, Program Code Compression System” according to Patent Document 3, depicted is a structure with which the effect of program code compression can work entirely through executing compression release on the fly at a position close to a processor by using XTensa processor of Tensilica as a base to increase a memory and a bus bandwidth.
For example, as shown in architecture, it is so structured that a signal sent from a cache or a tag is changed so that the signal is not intercepted by a compression release engine and the existence of the compression code is not recognized by the CPU. Further, as shown in a flowchart, there is also depicted processing for separating the program codes and the data.    Patent Document 1: Japanese Unexamined Patent Publication 2000-201081    Patent Document 2: Japanese Unexamined Patent Publication 2005-322209    Patent Document 3: Japanese Unexamined Patent Publication 2007-234048    Non-Patent Document 1: T. A. Welch, A Technique for High-Performance Data Compression, IEEE Computer, pp. 8-19 (1986)    Non-Patent Document 2: M. Kjelso, M. Gooch, S. Jones, Design and Performance of a Main Memory Hardware Data Compressor, IEEE Proceedings of EUROMICRO-22, pp. 423-30 (September 1996)    Non-Patent Document 3: A. R. Alameldeen, D. A. Wood, Frequent Pattern Compression: A Significance-Based Compression Scheme for L2 Caches (2004)